iT邦幫忙

8

JavaScript 教學 12:禮記學記

  • 分享至 

  • xImage
  •  

灑花灑花
<span style="color: blue;"><span style="font-size: 16px;"> 古之教者,家有塾,黨有庠,術有序,國有學。 </span></span>
灑花灑花
本節內容為迴圈的“現代”變形“for each”。因為傳統的語言,例如:C,並沒有這指令,然而因為好用,所以不僅現代語言都加入for each,並且連傳統的C語言也有相對應的macro去實現它。

指令型態為:for each (var in object) {}

我們可以用 “for each(學校種類 in 秦)”,就可以列出秦朝的學校種類了。

Yes

實作網址:http://www.w3schools.com/js/default.asp

最重要的是.............“推”是一定要按的啦!!!

上一篇:戰國策蘇秦始將連橫說秦
下一篇:李斯諫逐客書
第一篇:周南關睢


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
總裁
iT邦好手 1 級 ‧ 2012-07-16 09:26:10

筆記衝刺

總裁 iT邦好手 1 級 ‧ 2012-07-16 09:32:08 檢舉

您怎麼把人家的祕密說出來了....臉紅

lugood iT邦新手 4 級 ‧ 2012-10-25 00:21:01 檢舉

甚麼秘密 好想知道 疑惑

magician iT邦研究生 2 級 ‧ 2012-12-19 13:52:58 檢舉

總裁18歲的秘密

0
lugood
iT邦新手 4 級 ‧ 2012-10-25 00:26:58

ted大燒聲 辛苦了

0
magician
iT邦研究生 2 級 ‧ 2012-12-19 13:55:36

重點是...他可以當陣列使用??????

ted99tw iT邦高手 1 級 ‧ 2012-12-19 14:40:35 檢舉

{}為物件,[]才是陣列。

要掃過所有物件內容可用for each(e in Obj),
要掃過陣列則先從array.length得到陣列長度,再用
for(var i = 0; i < array.length; i++){}

0
magician
iT邦研究生 2 級 ‧ 2012-12-19 14:11:05

沒天份...沒反應....

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = (name:"c",title="d",age:"fu");
for each y in myobj;
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}

</script>

ted99tw iT邦高手 1 級 ‧ 2012-12-19 14:34:18 檢舉

法師打的有些typo,不要急...

ted99tw iT邦高手 1 級 ‧ 2012-12-19 14:35:45 檢舉

ted99tw提到:
document.getElementById("demo").innerHTML=str;

其中“=”好像更用了全型,應用半型...

document.getElementById("demo").innerHTML=str;

0
ted99tw
iT邦高手 1 級 ‧ 2012-12-19 14:33:25

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = {name:"c",title:"d",age:"fu"};
for each (y in myobj)
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}

</script>

看更多先前的回應...收起先前的回應...
magician iT邦研究生 2 級 ‧ 2012-12-19 16:05:25 檢舉

被修改處有
1.var myobj = {name:"c",title:"d",age:"fu"}; ()=>{}
2.for each (y in myobj) 去掉 ;
3.document.getElementById("demo").innerHTML=str; = => =

不過還是沒反應~~哭哭

ted99tw iT邦高手 1 級 ‧ 2012-12-19 16:37:07 檢舉

貼code上來,我在這執行看看...

magician iT邦研究生 2 級 ‧ 2012-12-19 19:05:35 檢舉

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = (name:"c",title="d",age:"fu");
for each y in myobj;
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}
</script>

magician iT邦研究生 2 級 ‧ 2012-12-19 19:07:42 檢舉

貼錯...再貼一次

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = {name:"c",title="d",age:"fu"};
for each y in myobj
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}

</script>

ted99tw iT邦高手 1 級 ‧ 2012-12-19 19:23:42 檢舉

法師還是沒改全...

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = {name:"c",title:"d",age:"fu"};
for each (y in myobj)
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}

</script>


magician iT邦研究生 2 級 ‧ 2012-12-20 10:33:00 檢舉

magician提到:
for each (y in myobj)

原來少了()

ted99tw iT邦高手 1 級 ‧ 2012-12-20 10:54:09 檢舉

magician提到:
原來少了"()"

忽然想到鐵大女兒用的"幫寶適"...冷

magician iT邦研究生 2 級 ‧ 2012-12-20 12:03:20 檢舉

輸了...我的碼沒反應...

<p id="demo">HELLO WORLD</p>
<button type = "button" onclick="myfun()">push me</button>

<script>
function myfun(){
var str="", y;
var myobj = {name:"c",title:"d",age:"fu"};
for each (y in myobj)
{
str= str + y + "/";
}
document.getElementById("demo").innerHTML=str;
}

</script>

ted99tw iT邦高手 1 級 ‧ 2012-12-20 12:08:59 檢舉

你碼沒錯,我這可跑,有時w3school伺服器會比較慢些...

magician iT邦研究生 2 級 ‧ 2012-12-20 12:18:24 檢舉

一定是無碼看太多...所以有碼的都不理我~~~毆飛

magician iT邦研究生 2 級 ‧ 2012-12-20 12:30:51 檢舉

google失敗..火湖失敗....

連存成index.htm打開來看也失敗

ted99tw iT邦高手 1 級 ‧ 2012-12-20 12:34:07 檢舉

那都無傷,重要的是D槽內的騎兵弟兄們絕不能潰散呀...開心

等元旦後俺也要開始分享一些東西了
當然這些東西不是D碟 也不是軍隊偷笑

ted99tw iT邦高手 1 級 ‧ 2012-12-20 13:11:02 檢舉

chingfeng提到:
分享一些東西

從鷹眼看世界?

敲碗敲碗敲碗

鐵殼心 iT邦高手 1 級 ‧ 2012-12-20 13:42:15 檢舉

ted99tw提到:
從鷹眼看世界?

從針孔看世界喜歡

magician iT邦研究生 2 級 ‧ 2012-12-20 14:10:35 檢舉

ted99tw提到:
從鷹眼看世界

老鷹的獵物一定是~~~排妹

magician提到:
老鷹的獵物一定是~~~排妹

她是誰 俺怎麼不認識 驚
有圖有真相 PO圖來看看吧臉紅

0
wordsmith
iT邦高手 1 級 ‧ 2012-12-20 13:43:30

順便跟法師說一下,學JavaScript,用Firefox的Firebug或Chrome的開發人員工具,是開發時很重要的工具哦,有錯報錯,對debug很有用。

以你的程式碼來說,用Chrome的開發人員工具來看:

出現一行錯誤「Uncaught SyntaxError: Unexpected identifier 」告訴我們語法錯誤,有未知的識別字。

後面的test.html:11代表是11行出錯。


從我的原始碼來看,11行是:

for each(y in myobj)

就知道錯誤出在這裡。

JavaScript中,原生語法沒有for each,而是用for...in,所以出了問題。

因此只要把語法改成:

for(y in myobj)

就可以成功了,截圖如下

看更多先前的回應...收起先前的回應...
wordsmith iT邦高手 1 級 ‧ 2012-12-20 14:04:43 檢舉

原始碼那張圖重複貼了 SorryXD

magician iT邦研究生 2 級 ‧ 2012-12-20 14:19:47 檢舉

那泰大怎麼做的出 for each....

另外重點是....Chrome的開發人員工具.....在哪裡???

我用右鍵的 檢查元素 有一個很像的開發工具...
點console可以看到類似圖一....
但沒有辦法跟大大一樣有分頁的效果

magician iT邦研究生 2 級 ‧ 2012-12-20 14:24:48 檢舉

console

找了好久的source

wordsmith iT邦高手 1 級 ‧ 2012-12-20 14:28:46 檢舉

console那個就是開發人員工具沒錯,按shift+Crtl+i 就會跳出來。

分頁那個是我開檢視原始碼啦。

vick iT邦新手 5 級 ‧ 2013-02-02 22:11:35 檢舉

wordsmith大提到for each並不是JavaScript外
小弟在此做一個小小的補充...
要做到跟泰大一樣的效果(顯示裡面的參數)的話:

  • 物件[變數]

    <pre class="c" name="code">
    for(y in myobj
     {
     str= str + <strong>myobj[y]</strong> + "/";
     }
     document.getElementById("demo").innerHTML=str;

(初次po文,有不禮貌之處請見諒)

0
smalldulan
iT邦新手 5 級 ‧ 2013-11-18 16:39:16

Ted大~
我的javascript也沒有反應~可以麻煩您幫我看看是哪裡寫錯了嗎?謝謝~~

<h1>
<p id="demo">This is paragraph.</p>
</h1>
<button type="button" onclick="myFun()">
Push me!!
</button>

<script>
function myFun(){
var str="",y;
var myObj={name:"SDL",title:"Boss",age:18};
for each(y in myObj){
str=str+y+"/";
}
document.getElementById("demo").innerHTML=str;
}
</script>

看更多先前的回應...收起先前的回應...
ted99tw iT邦高手 1 級 ‧ 2013-11-18 18:24:54 檢舉

smalldulan提到:
for each(y in myObj)

去掉each試試。謝謝

去掉each會變成name/title/age/耶哭

ted99tw iT邦高手 1 級 ‧ 2013-11-18 20:24:52 檢舉

smalldulan提到:
str=str+y+"/";

換成以上vick大所作的:
str=str+myObj[y]+"/";謝謝

喔喔~有了耶開心
可以請問一下這樣myObj是算物件還是算陣列呢?

ted99tw iT邦高手 1 級 ‧ 2013-11-18 21:01:31 檢舉
&lt;pre class="c" name="code">
var myObj={name:"SDL",title:"Boss",age:18}; //物件
var myCars=["Saab","Volvo","BMW"];          //陣列

雖然'myObj[y]'寫法很像陣列,但myObj不是陣列而是物件。謝謝

喔喔~原來如此~因為看到了myObj[y]的用法以為myObj也變陣列了
感謝Ted大的指點~讚

我要留言

立即登入留言